﻿ 
//
// *************************************************************************************
// WP-Framework
// 
// Developed by
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//
// ***********************************************************************************************************************************
// NOTICE!!
// This content is auto-generated. Any changes will be overriden the next time the template is changed or the custom-tool is executed.
// Generated at: 10.04.2013 00:12
//
// ***********************************************************************************************************************************

using System;
using System.Reflection;
using KretschIT.WP_Fx.EasyMoq;
using KretschIT.WP_Fx.EasyMoq.Generator;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Objects;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.OtherObjects;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Events;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Inheritance;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Async;
using System;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Objects.Custom;
using System.Collections.Generic;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Other;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Events.EventArgs;
using System.Threading.Tasks;

namespace EasyMoq.Extensions
{
	#region TestObjectMockable

	static class TestObjectMockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		public static PropertyInfo Property(this ITestObject mock)
		{
			return typeof(ITestObject).GetProperty("Property");
		}

		public static PropertyInfo OtherProperty(this ITestObject mock)
		{
			return typeof(ITestObject).GetProperty("OtherProperty");
		}

		
		#endregion
	}
	
	#endregion

	#region TestGenericMethodMockable

	static class TestGenericMethodMockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		
		#endregion
	}
	
	#endregion

	#region TestSimpleGenericObject1Mockable

	static class TestSimpleGenericObject1MockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		
		#endregion
	}
	
	#endregion

	#region TestSimpleGenericObject1_1_Mockable

	static class TestSimpleGenericObject1_1_MockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		
		#endregion
	}
	
	#endregion

	#region TestComplexGenericObject3Mockable

	static class TestComplexGenericObject3MockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		public static PropertyInfo Items<T1, T2, T3>(this ITestComplexGenericObject<T1, T2, T3> mock) where T1 : struct
		{
			return typeof(ITestComplexGenericObject<T1, T2, T3>).GetProperty("Items");
		}

		
		#endregion
	}
	
	#endregion

	#region TestAllEventMockable

	static class TestAllEventMockableExtensions
	{
		#region EventExtensions

		public static void SimpleEventEvent(this IEventsOf<ITestAllEvent> mock, Object sender, EventArgs e)
		{
			var eventCall = mock.GetType().GetMethod("RaiseSimpleEventEvent");
			eventCall.Invoke(mock, new object[] { sender, e });
		}

		public static void GenericEventEvent(this IEventsOf<ITestAllEvent> mock, Object sender, EventArgs e)
		{
			var eventCall = mock.GetType().GetMethod("RaiseGenericEventEvent");
			eventCall.Invoke(mock, new object[] { sender, e });
		}

		public static void CustomEventEvent(this IEventsOf<ITestAllEvent> mock, MyEventArgs arg1, EventArgs arg2)
		{
			var eventCall = mock.GetType().GetMethod("RaiseCustomEventEvent");
			eventCall.Invoke(mock, new object[] { arg1, arg2 });
		}

		#endregion

		#region PropertyExtensions

		
		#endregion
	}
	
	#endregion

	#region TopMockable

	static class TopMockableExtensions
	{
		#region EventExtensions

		public static void BaseEventEvent(this IEventsOf<ITop> mock, Object sender, EventArgs e)
		{
			var eventCall = mock.GetType().GetMethod("RaiseBaseEventEvent");
			eventCall.Invoke(mock, new object[] { sender, e });
		}

		public static void TestEventEvent(this IEventsOf<ITop> mock, Object sender, EventArgs e)
		{
			var eventCall = mock.GetType().GetMethod("RaiseTestEventEvent");
			eventCall.Invoke(mock, new object[] { sender, e });
		}

		#endregion

		#region PropertyExtensions

		public static PropertyInfo Label(this ITop mock)
		{
			return typeof(ITop).GetProperty("Label");
		}

		public static PropertyInfo Value(this ITop mock)
		{
			return typeof(ITop).GetProperty("Value");
		}

		
		#endregion
	}
	
	#endregion

	#region TopOverloadMockable

	static class TopOverloadMockableExtensions
	{
		#region EventExtensions

		public static void AnEventEvent(this IEventsOf<ITopOverload> mock, Object sender, EventArgs e)
		{
			var eventCall = mock.GetType().GetMethod("RaiseAnEventEvent");
			eventCall.Invoke(mock, new object[] { sender, e });
		}

		#endregion

		#region PropertyExtensions

		public static PropertyInfo Value(this ITopOverload mock)
		{
			return typeof(ITopOverload).GetProperty("Value");
		}

		
		#endregion
	}
	
	#endregion

	#region SetterMockable

	static class SetterMockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		public static PropertyInfo Value(this ISetter mock)
		{
			return typeof(ISetter).GetProperty("Value");
		}

		
		#endregion
	}
	
	#endregion

	#region OnlySetter1Mockable

	static class OnlySetter1MockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		public static PropertyInfo Value<T>(this IOnlySetter<T> mock)
		{
			return typeof(IOnlySetter<T>).GetProperty("Value");
		}

		
		#endregion
	}
	
	#endregion

	#region TestAsyncFuncMockable

	static class TestAsyncFuncMockableExtensions
	{
		#region EventExtensions

		#endregion

		#region PropertyExtensions

		
		#endregion
	}
	
	#endregion

	
}


 
